Ownership Domains: Separating Aliasing Policy from Mechanism
نویسندگان
چکیده
Ownership types promise to provide a practical mechanism for enforcing stronger encapsulation by controlling aliasing in objectoriented languages. However, previous ownership type proposals have tied the aliasing policy of a system to the mechanism of ownership. As a result, these proposals are too weak to express many important aliasing constraints, yet also so restrictive that they prohibit many useful programming idioms. In this paper, we propose ownership domains, which decouple encapsulation policy from the mechanism of ownership in two key ways. First, developers can specify multiple ownership domains for each object, permitting a fine-grained control of aliasing compared to systems that provide only one ownership domain for each object. Second, developers can specify the permitted aliasing between each pair of domains in the system, providing more flexibility compared to systems that enforce a fixed policy for inter-domain aliasing. Because it decouples policy from mechanism, our alias control system is both more precise and more flexible than previous ownership type systems.
منابع مشابه
Dominance Analysis via Ownership Types and Abstract Interpretation
Ownership types provide a declarative way to statically structure the topology of the heap and control aliasing in object-oriented programs. However, the relation between systematically derived static program analyses by abstract interpretation and semantic properties enforced by ownership types has not yet been investigated. In this work we build a framework to statically compute an abstract o...
متن کاملPrimitive Associations
This position paper presents a very simple mechanism, primitive associations, and argues that this mechanism is worth careful consideration in connection with the kind of support for program correctness that grows out of mechanisms for ownership, controlled aliasing, sharing, escape analysis, and so on.
متن کاملUsing ownership types to support library aliasing boundaries
This paper describes a library for concurrency used in a 10developer videogame project. The developers were inexperienced, yet there were no problems with data races in the multi-threaded application. We credit this to the explicit representation of ownership in the design of the library. Correct library usage implies aliasing boundaries which bear a strong resemblance to the ownersas-dominator...
متن کاملObject Graphs with Ownership Domains: An Empirical Study
Researchers have proposed many ownership type systems but reported limited experience with most of them on real object-oriented code. Only a few systems have been implemented, and there have been few substantial case studies done with those systems. In order to better empirically evaluate ownership type systems, we have therefore conducted a number of case studies applying the Ownership Domains...
متن کاملExtracting Dataflow Objects and other Flow Objects
Finding architectural flaws in object-oriented code requires a runtime architecture that shows multiple components of the same type that are used in different contexts. Previous work showed that a runtime architecture can be approximated by an abstract object graph that a static analysis extracts from code with Ownership Domain annotations. To find architectural flaws, it is not enough to reaso...
متن کامل